/*
 * Copyright (c) 2020 cloud4cloud Authors. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.bigbirdmed.cloud.admin.api.vo;


import com.alibaba.excel.annotation.ExcelProperty;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;


import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * @author lengleng
 * @date 2019/2/1
 */
@Data
public class LogVO implements Serializable {

//	private static final long serialVersionUID = 1L;
//
//	private SysLog sysLog;
//
//	private String username;

	@ApiModel(value = "LogPageVO",description = "日志信息")
	public static  class  LogPageVO implements  Serializable{

		private static final long serialVersionUID = 1L;

		/**
		 * 编号
		 */
		@ExcelProperty("日志编号")
		@ApiModelProperty(value = "日志编号")
		@JsonSerialize(using = ToStringSerializer.class)
		private Long id;

		/**
		 * 日志类型
		 */
		@ExcelProperty("日志类型（0-正常 9-错误）")
		@ApiModelProperty(value = "日志类型")
		private String type;

		/**
		 * 日志标题
		 */
		@ExcelProperty("日志标题")
		@ApiModelProperty(value = "日志标题")
		private String title;

		/**
		 * 操作IP地址
		 */
		@ExcelProperty("IP")
		@ApiModelProperty(value = "操作ip地址")
		private String remoteAddr;

		/**
		 * 用户浏览器
		 */
		@ExcelProperty("浏览器类型")
		@ApiModelProperty(value = "用户代理")
		private String userAgent;

		/**
		 * 请求URI
		 */
		@ExcelProperty("请求URI")
		@ApiModelProperty(value = "请求uri")
		private String requestUri;

		/**
		 * 操作方式
		 */
		@ExcelProperty("操作方式")
		@ApiModelProperty(value = "操作方式")
		private String method;

		/**
		 * 操作提交的数据
		 */
		@ExcelProperty("请求参数")
		@ApiModelProperty(value = "数据")
		private String params;

		/**
		 * 执行时间
		 */
		@ExcelProperty("方法执行时间")
		@ApiModelProperty(value = "方法执行时间")
		private Long time;

		/**
		 * 异常信息
		 */
		@ExcelProperty("异常信息")
		@ApiModelProperty(value = "异常信息")
		private String exception;

		/**
		 * 服务ID
		 */
		@ExcelProperty("应用标识")
		@ApiModelProperty(value = "应用标识")
		private String serviceId;

	}

	@Data
	@ApiModel(value = "LogIdDTO",description = "日志id")
	public static  class  LogIdDTO{
		@NotNull(message = "id不能为空")
		@ApiModelProperty(value = "id")
		private Long id;
	}

	@Data
	@ApiModel(value = "RemoveByIdsDTO",description = "删除日志")
	public static  class  RemoveByIdsDTO{
		@Valid
		@ApiModelProperty(value = "日志ids")
		@NotEmpty(message = "日志ids不能为空")
		private List<LogIdDTO> rows;
	}



}
